<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Grocery extends CI_Controller {

	function __construct()
	{
		parent::__construct();
		
		$this->load->database();
		$this->load->helper('url');
		
		$this->load->library('grocery_CRUD');	
	}
	
	function _example_output($output = null)
	{
		$this->load->view('example.php',$output);	
	}
	
	function eventos()
	{
		if($this->session->userdata('id')){ 
            if($this->session->userdata('admin')){
                $this->load->library('grocery_CRUD');

                $crud = new grocery_CRUD();

                $crud->set_table('evento')
                    ->set_subject('Eventos')
                    ->columns('nome','local','data', 'ini_insc', 'fim_insc','ini_quarto', 'fim_quarto', 'ini_prog', 'fim_prog', 'ini_case', 'fim_case')
                    ->display_as('nome','Nome')
                    ->display_as('local','Local do Evento')
                    ->display_as('data','Data de início do Evento')
                    ->display_as('ini_insc','Início das Inscrições')
                    ->display_as('fim_insc','Fim das Inscrições')
                    ->display_as('ini_quarto','Início da escolha de Quartos')
                    ->display_as('fim_quarto','Fim da escolha de Quartos')
                    ->display_as('ini_prog','Início da escolha da Programação')
                    ->display_as('fim_prog','Fim da escolha da Programação')
                    ->display_as('ini_case','Início de Envio dos Cases')
                    ->display_as('fim_case','Fim de envio dos Cases');

                $crud->fields('nome','local','data', 'ini_insc', 'fim_insc','ini_quarto', 'fim_quarto', 'ini_prog', 'fim_prog', 'ini_case', 'fim_case');
                $crud->required_fields('nome','local','data', 'ini_insc', 'fim_insc','ini_quarto', 'fim_quarto', 'ini_prog', 'fim_prog', 'ini_case', 'fim_case');

                $output = $crud->render();

                $this->_example_output($output);
            }
            else{
                redirect('majoribol');
            }
        }
        else{
            redirect('usuario/login');
        }
	}
	
	function index()
	{
		$this->_example_output((object)array('output' => '' , 'js_files' => array() , 'css_files' => array()));
	}	
	
	function horarios()
	{
		$crud = new grocery_CRUD();

		$crud->set_theme('flexigrid');
		$crud->set_table('horario');
		$crud->fields('horario');
		$crud->display_as('horario','Horário');
		$crud->set_subject('Horário');
		$output = $crud->render();
		$crud->required_fields('horario');
		
        $this->_example_output($output);
	}
	
	function salas()
	{
			$crud = new grocery_CRUD();

			$crud->set_theme('flexigrid');
			$crud->set_table('sala');
			$crud->fields('nome', 'evento_evento_id');
			$crud->set_relation('evento_evento_id','evento','nome');
			$crud->display_as('nome','Nome da Sala');
			$crud->display_as('evento_evento_id','Evento');
			$crud->set_subject('Salas');
			
			$crud->required_fields('nome, evento_evento_id');
			
			$output = $crud->render();

			$this->_example_output($output);
	}
	
	function quartos()
	{
			$crud = new grocery_CRUD();
			
			$crud->set_theme('flexigrid');
			$crud->set_table('quarto');
			$crud->fields('numero', 'vagas', 'capacidade', 'evento_evento_id');
			$crud->set_relation('evento_evento_id','evento','nome');
			$crud->display_as('numero','Número do Quarto');
			$crud->display_as('vagas','Vagas Disponíveis');
			$crud->display_as('capacidade','Capacidade Total');
			$crud->set_subject('Quartos');
			
			$crud->required_fields('numero', 'vagas', 'capacidade', 'evento_evento_id');
			
			$output = $crud->render();

			$this->_example_output($output);
	}	
	
	function areas()
	{
			$crud = new grocery_CRUD();

			$crud->fields('nome');
			$crud->display_as('nome','Nome');
			$crud->set_table('area');
			$crud->set_subject('Áreas');
			$crud->required_fields('nome');
			
			$output = $crud->render();
			
			$this->_example_output($output);
	}
	
	function programacao()
	{
			$crud = new grocery_CRUD();
						
			$crud->set_theme('flexigrid');
			$crud->set_table('palestra');
			$crud->fields('nome', 'palestrante', 'resumo', 'tipo', 'horario_horario_id', 'sala_sala_id','evento_evento_id');
			$crud->set_relation('evento_evento_id','evento','nome');
			$crud->set_relation('horario_horario_id','horario','horario');
			$crud->set_relation('sala_sala_id','sala','nome');
			$crud->display_as('nome','Nome');
			$crud->display_as('palestrante','Palestrante');
			$crud->display_as('resumo','Resumo');
			$crud->display_as('tipo','Tipo');
			$crud->display_as('horario_horario_id','Horário');
			$crud->display_as('sala_sala_id','Sala');
			$crud->display_as('evento_evento_id','Evento');
			$crud->set_subject('Programação');
			
			$crud->required_fields('nome', 'palestrante', 'resumo', 'tipo', 'horario_horario_id', 'sala_sala_id','evento_evento_id');
			
			$output = $crud->render();

			$this->_example_output($output);
	}	
	
	function valueToEuro($value, $row)
	{
		return $value.' &euro;';
	}
	
	function film_management()
	{
		$crud = new grocery_CRUD();
		
		$crud->set_table('film');
		$crud->set_relation_n_n('actors', 'film_actor', 'actor', 'film_id', 'actor_id', 'fullname','priority');
		$crud->set_relation_n_n('category', 'film_category', 'category', 'film_id', 'category_id', 'name');
		$crud->unset_columns('special_features','description','actors');
		
		$crud->fields('title', 'description', 'actors' ,  'category' ,'release_year', 'rental_duration', 'rental_rate', 'length', 'replacement_cost', 'rating', 'special_features');
		
		$output = $crud->render();
		
		$this->_example_output($output);
	}
	
}